drop proc dbo.Reporte101
go

CREATE PROCEDURE dbo.Reporte101
(
  @cabezero Varchar(8000),
  @Resul    Varchar(8000)  OutPut,
  @DataSet  nText,
  @Validar  Int
)

AS
BEGIN
  Set NoCount On
   --------------------------
  --Reporte Ventas
  --------------------------

  --Variables de Trabajo
  Declare @Registro  Int
  Declare @Valor1    VarChar(8000)
  Declare @Valor2    VarChar(8000)
  Declare @Valor3    VarChar(8000)
  Declare @Desc1     VarChar(8000)
  Declare @Sql       Varchar(8000)
  --Asignar Valores
  Select @Desc1  = ""
  Select @Resul  = ""

  --Obtener los Parametros
  Exec Emulador_SepararCadena 'V1', @Cabezero, '|', @Valor1 Output --N
  Exec Emulador_SepararCadena 'V2', @Cabezero, '|', @Valor2 Output --C
  Exec Emulador_SepararCadena 'V3', @Cabezero, '|', @Valor3 Output --C

Select NoFactura = LTrim(RTrim(IsNull(a.IdVenta,''))),                     --Select * From PVF..Ventas
                      Descripcion = '(' + LTrim(RTrim(IsNull(b.cantidad,0))) + ') '+LTrim(RTrim(IsNull(c.Descripcion,''))),
                       TipoCambio = LTrim(RTrim(IsNull(d.Descripcion,''))),
                       Fecha = IsNull(Convert(Varchar,a.Fecha,103),''),
                       Importe = Convert(Decimal(18,2),LTrim(RTrim(IsNull(b.Cantidad,0)))) * Convert(Decimal(18,2),LTrim(RTrim(IsNull(b.CostoUni,0)))),
                       cliente= isnull(e.nombrefiscal,''),
						Factura =  Case When IsNull(a.Factura,0) = 1 
						
                             Then '(Factura)'+ '(' + (select ff.nofactura  from pvf..facturas ff where ff.fecha=a.fecha) + ')'
                                Else '(Recibo)' + '(' + ltrim(rtrim(str(a.IdVenta))) + ')'
                             End 
                From PVF..Ventas a (NoLock) 
                Left Join PVF..Venta_Detalles b (NoLock) On b.IdVenta = a.IdVenta
                Left Join PVF..Cat_Productos c (NoLock) On c.IdProducto = b.IdProducto
                Left Join PVF..Cat_TipoCambio d (NoLock) On d.IdTipoCambio = a.IdTipoCambio
				Left Join PVF..Cat_Clientes e (NoLock) On e.IdCliente = a.IdCliente
                Where 1 = 1





  Select @Sql = "Select NoFactura = LTrim(RTrim(IsNull(a.IdVenta,''))),                     --Select * From PVF..Ventas
                      Descripcion = '(' + LTrim(RTrim(IsNull(b.cantidad,0))) + ') '+LTrim(RTrim(IsNull(c.Descripcion,''))),
                       TipoCambio = LTrim(RTrim(IsNull(d.Descripcion,''))),
                       Fecha = IsNull(Convert(Varchar,a.Fecha,103),''),
                       Importe = Convert(Decimal(18,2),LTrim(RTrim(IsNull(b.Cantidad,0)))) * Convert(Decimal(18,2),LTrim(RTrim(IsNull(b.CostoUni,0)))),
                       Factura =  Case When IsNull(a.Factura,0) = 1 
                             Then '(Factura)'+ '(' + (select ff.nofactura  from pvf..facturas ff where ff.fecha=a.fecha) + ')'
                                Else '(Recibo)' + '(' + ltrim(rtrim(str(a.IdVenta))) + ')'
                             End 
                From PVF..Ventas a (NoLock) 
                Left Join PVF..Venta_Detalles b (NoLock) On b.IdVenta = a.IdVenta
                Left Join PVF..Cat_Productos c (NoLock) On c.IdProducto = b.IdProducto
                Left Join PVF..Cat_TipoCambio d (NoLock) On d.IdTipoCambio = a.IdTipoCambio
				Left Join PVF..Cat_Clientes e (NoLock) On e.IdCliente = a.IdCliente
                Where 1 = 1"

  If Len(LTrim(RTrim(@Valor1))) > 0 
    Begin
     Select @Sql = @Sql + "And e.codigo ='"+ @Valor1 + "' " 
    End
  If Len(@Valor2) > 0 And Len(@Valor3) > 0
   Begin
     Select @Sql = @Sql + " And a.Fecha Between '" + @Valor2 + "' And '" + @Valor3 + "' " 
   End

   Select @Sql = @Sql + " Order By a.Fecha"

  
  Exec(@Sql)


	 Select @Registro =@@RowCount
  

	-- Enviar Resultado
  If @Registro = 0
   Begin
      If @Validar = 0
         Select @Resul = '2R=ERROR|2M=No hay datos en el reporte|'
      If @Validar = 1
         Select @Resul = '2R=ERROR|2M=No hay datos en el reporte|'
   End
  Else
    Begin
	  If @Validar = 0
	     Select @Resul='2R=OK|'
	 If @Validar = 1 
		Select @Resul='2R=OK|'
    End

  Set NoCount OFF
END



